Skip to main content

com.homemade.modules.audio

info

Version: 1.1.0
Github: Link
Dependencies:

This is simple package for audio manager, can use in any project.

1. Import

Download from my registries

  • Open Package Manager in Unity.
  • Select Packages tab: My Registries.
  • Download package: com.homemade.modules.audio

Follow the setup: Click here.

Import from github

Follow this guide: Click here.

2. How to use

AudioController

After you install the package, create an empty object name AudioManager add the script AudioController.

AudioController

There are 2 buttons for generate clip name:

  • SoundClips.cs
namespace com.homemade.modules.audio
{
public class SoundClips
{
public const string SoundFx = "SoundFx";
}
}
  • MusicClips.cs
namespace com.homemade.modules.audio
{
public class MusicClips
{
public const string BG_Music = "BG_Music";
}
}
note

This is follow by the name of the audio file.

AudioCase

This AudioController will create AudioCase to controll the audio.

public enum AudioType
{
Music = 0,
Sound = 1
}

[Serializable]
public class AudioCase
{
public AudioSource source;
public AudioType type;

public event Action OnAudioEnded;

public AudioCase(AudioClip clip, AudioSource source, AudioType type)
{
this.source = source;
this.type = type;
this.source.clip = clip;
}

public void Complete()
{
OnAudioEnded?.Invoke();
}

public void Play()
{
source.Play();
}

public void Stop()
{
source.Stop();
}
}

API

Play

using com.homemade.modules.audio;

public class Game : MonoBehaviour
{
private void Start()
{
// Sound
AudioController.Instance.PlaySound(SoundClips.SoundFx);

// Music
AudioController.Instance.PlayMusic(MusicClips.BG_Music);
}
}

PlaySmart

using com.homemade.modules.audio;

public class Game : MonoBehaviour
{
private void Start()
{
// Sound
AudioCase sound = AudioController.Instance.PlaySmartSound(SoundClips.SoundFx);

// Music
AudioCase music = AudioController.Instance.PlaySmartMusic(MusicClips.BG_Music);
}
}
tip

You can direct controll the audio base on the AudioCase.

PlayRandomMusic

using com.homemade.modules.audio;

public class Game : MonoBehaviour
{
private void Start()
{
AudioController.Instance.PlayRandomMusic();
}
}

Release

using com.homemade.modules.audio;

public class Game : MonoBehaviour
{
private void Start()
{
// Sound
AudioController.Instance.ReleaseSounds();

// Music
AudioController.Instance.ReleaseMusic();
}
}

StopStream

using com.homemade.modules.audio;

public class Game : MonoBehaviour
{
private IEnumerator Start()
{
AudioCase sound = AudioController.Instance.PlaySmartSound(SoundClips.SoundFx);

yield return new WaitForSeconds(2f);

AudioController.Instance.StopStream(sound);
}
}

TurnOnOff

using com.homemade.modules.audio;

public class Game : MonoBehaviour
{
private void Start()
{
// Sound
AudioController.Instance.TurnOnOffSound(true);

// Music
AudioController.Instance.TurnOnOffMusic(true);
}
}

ChangeVolume

using com.homemade.modules.audio;

public class Game : MonoBehaviour
{
private void Start()
{
// You should set volume from 0f to 1f

// Sound
AudioController.Instance.ChangeSoundVolume(1f);

// Music
AudioController.Instance.ChangeMusicVolume(1f);
}
}

AudioUtils

OnComplete

using com.homemade.modules.audio;

public class Game : MonoBehaviour
{
private void Start()
{
AudioCase sound = AudioController.Instance.PlaySmartSound(SoundClips.SoundFx);

IEnumerator action = sound.OnComplete(() =>
{
Debug.Log("Sound complete");
});
StartCoroutine(action);
}
}
note

It's very simple and esay to use. Hope you guys like it.